#include <System.cpu\cpuFalloc.h>
#include <System\LinkedList.h>

#include <stdio.h>

using namespace System;
template class LinkedList<int>;

void testLinkedList(fallocHeap* heap)
{
	fallocInit(heap);
	fallocContext* ctx = fallocCreateCtx(heap);

	//
	LinkedList<int> list; list.xtor(ctx);
	list.AddLast(5);
	list.AddLast(3);
	list.AddLast(1);
	list.AddLast(2);
	list.AddLast(7);
	list.AddLast(10);

	//
	LinkedList<int>::Enumerator e; list.GetEnumerator(e);
	while (e.MoveNext(&list))
		printf("%d\n", e.Current);
	e.Dispose();

	//
	fallocDisposeCtx(ctx);
}

int main()
{
	cpuFallocHost fallocHost = cpuFallocInit(2048);

	// test
	testLinkedList(fallocHost.heap);

	// free and exit
	cpuFallocEnd(fallocHost);
	printf("\ndone.\n"); char c; scanf_s("%c", &c);
    return 0;
}
